package com.buercorp.wangyu.socket.tcpdemo03;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.UUID;

/**
 * 本地文件上传
 * 客户端：将本地文件上传到服务器 接收服务器的反馈
 * 服务器：接收客户端上传的文件 上传完毕之后给出反馈
 *
 * @author liyiyu
 */
public class Server {
    public static void main(String[] args) throws IOException {
        // 绑定端口
        ServerSocket ss = new ServerSocket(13333);
        // 等待客户端来连接
        Socket socket = ss.accept();
        // 读取数据并保存在本地文件中
        BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
        // UUID 生成 随机的 文件名
        String name = UUID.randomUUID().toString().replace("-", "");
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("src\\main\\resources\\serverdir\\" + name + ".jpg"));
        int len;
        byte[] bytes = new byte[1024];
        while ((len = bis.read(bytes)) != -1) {
            bos.write(bytes, 0, len);
        }
        // 回写数据
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        bw.write("上传成功");
        bw.newLine();
        // 用于清空BufferedWriter的缓冲区并强制写入所有剩余字符
        bw.flush();
        // 释放资源
        socket.close();
        ss.close();
    }
}
